/** 
 *  @file       digitron.c
 *  @brief      数码管驱动程序
 *  @author     Z B T   
 *  @version    V0.1
 *  @date       2015-10
 */
 
#include "digitron.h"
#include "encoder.h"
//#include "keypad.h"
#include "delay.h"
#include "config.h"
    
#define GPIO_DIGITRON   P0

//unsigned char code DIGITRON_MAP[] =		    /**< 共阳极显示代码 */
//{   /** 0--f 和 '-' 全亮 */
//	0xc0, 0xf9, 0xa4, 0xb0, 0x99,        
//	0x92, 0x82, 0xf8, 0x80, 0x90,
//	0x88, 0x83, 0xc6, 0xa1, 0x86,
//    0x8e,
//    0xbf, 0xff
//};
unsigned char code DIGITRON_MAP[] =         /**< 共阴极显示代码 */
{   /** 0--f */
    0x3f, 0x06, 0x5b, 0x4f, 0x66, 
    0x6d, 0x7d, 0x07, 0x7f, 0x6f,
    0x77, 0x7c, 0x39, 0x5e, 0x79, 
    0x71, 0x00
};

/**
 *  3-8译码器驱动数码管动态显示
 *  @param None
 *  @return None
 */
void digitron_dynamic_display(void)
{
    unsigned char i, j;
    
    for (i = 0; i < 8; i++)
    {
        encoder_select(i);                      /**< 送位选 */
        GPIO_DIGITRON = DIGITRON_MAP[i];        /**< 送段选 */
        j = 20;
        while (j--);
        GPIO_DIGITRON = DIGITRON_MAP[16];       /**< 消隐 */
    }
}


/**
 *  数码管显示按键键值
 *  @param None
 *  @return None
 */
//void display_key_value()
//{
//    unsigned char key_value;
//    
//    key_value = key_scan();
//    GPIO_DIGITRON = DIGITRON_MAP[key_value];       /**< 数码管静态显示 */ 
//}